//package org.huawei260;
//
//import java.util.Scanner;
//
///**
// * @Auther: qingle
// * @Date: 2024/8/19-16:11
// * @Description:
// * 为了充分发挥GPU算力，
// * 需要尽可能多的将任务交给GPU执行，
// * 现在有一个任务数组，
// * 数组元素表示在这1s内新增的任务个数，
// * 且每秒都有新增任务，
// * 假设GPU最多一次执行n个任务，
// * 一次执行耗时1s，
// * 在保证GPU不空闲的情况下，最少需要多长时间执行完成。
// *
// * 输入描述
// * 第一个参数为GPU最多执行的任务个数，取值范围1 ~ 10000
// * 第二个参数为任务数组的长度，取值范围1 ~ 10000
// * 第三个参数为任务数组，数字范围1 ~ 10000
// *
// * 输出描述
// * 执行完所有任务需要多少秒
// *
// * 3
// * 5
// * 1 2 3 4 5
// *
// * @version: 1.0
// */
//public class O0005_任务调度_yes {
//
//	public static void main(String[] args) {
//		try (Scanner scanner = new Scanner(System.in)) {
//			int n = scanner.nextInt();
//			int len = scanner.nextInt();
//			int[] jobCount = new int[len];
//			for (int i = 0; i < len; i++) {
//				jobCount[i] = scanner.nextInt();
//			}
////			solution(n, jobCount);
//		}
//	}
//
////	public static int solution(int maxTasks, int[] taskArray) {
////		int totalSeconds = 0;
////		int taskIndex = 0;
////		int remainingTasks = 0;
////
////		while (taskIndex < taskArray.length || remainingTasks > 0) {
////			// Add new tasks for the current second, if any
////			if (taskIndex < taskArray.length) {
////				remainingTasks += taskArray[taskIndex++];
////			}
////
////			// Execute as many tasks as possible, up to maxTasks
////			int tasksToExecute = Math.min(remainingTasks, maxTasks);
////			remainingTasks -= tasksToExecute;
////			totalSeconds++;
////		}
////
////		return totalSeconds;
//	}
//
////	private static void solution(int n, int[] jobCount) {
////		int time = 0;
////		int remaining = 0;
////		for (int count : jobCount) {
////			if (count + remaining > n) {
////				remaining = count + remaining - n;
////			} else {
////				remaining = 0;
////			}
////			time++;
////		}
////		time += remaining / n;
////		if (remaining % n > 0) {
////			time++;
////		}
////		System.out.println(time);
////	}
//}
